标签:charset cat cti ade ref OAuth2 key 文档 帮助
文档继续完善整理中。。。。。。
c.DocumentFilter<SwaggerDocTag>(); /// <summary> /// Swagger注释帮助类 /// </summary> public class SwaggerDocTag : IDocumentFilter { /// <summary> /// 添加附加注释 /// </summary> public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer) { //swaggerDoc.tags = new List<Tag> //{ // //添加对应的控制器描述 这个是我好不容易在issues里面翻到的 // new Tag { name = "Home", description = "后台" }, // new Tag { name = "Client", description = "客户端" }, // new Tag { name = "System", description = "系统" } //}; swaggerDoc.tags = GetControllerDesc(); } /// <summary> /// 从xml注释中读取控制器注释 /// </summary> /// <returns></returns> private List<Tag> GetControllerDesc() { List<Tag> tagList = new List<Tag>(); var xmlpath = string.Format(string.Format("{0}/bin/Eternal.WebAPI.xml", System.AppDomain.CurrentDomain.BaseDirectory)); if (!File.Exists(xmlpath))//检查xml注释文件是否存在 return tagList; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlpath); string memberName = string.Empty;//xml三级节点的name属性值 string controllerName = string.Empty;//控制器完整名称 string key = string.Empty;//控制器去Controller名称 string value = string.Empty;//控制器注释 foreach (XmlNode node in xmlDoc.SelectNodes("//member"))//循环三级节点member { memberName = node.Attributes["name"].Value; if (memberName.StartsWith("T:"))//T:开头的代表类 { string[] arrPath = memberName.Split(‘.‘); controllerName = arrPath[arrPath.Length - 1]; if (controllerName.EndsWith("Controller"))//Controller结尾的代表控制器 { XmlNode summaryNode = node.SelectSingleNode("summary");//注释节点 key = controllerName.Remove(controllerName.Length - "Controller".Length, "Controller".Length); if (summaryNode != null && !string.IsNullOrEmpty(summaryNode.InnerText) && !tagList.Contains(new Tag { name = key })) { value = summaryNode.InnerText.Trim(); tagList.Add(new Tag { name = key, description = value }); } } } } return tagList; }
/**
* Get Code
*/
AuthHttpClient.prototype.getCode = function (url, client_id, callback, errorCallback, statusCodeCallback) {
//&scope=admin
$.ajax(url + ‘authorize?response_type=code&scope=xxx&client_id=‘ + client_id + "&redirect_uri=" + window.location.href, {
type: ‘POST‘,
async:false,
success: function (data, textStatus, jqXHR) {
if (callback !== null) {
callback(data);
sessionStorage.setItem("registered_redirect_uri", location.href);
location.href = data;
return false;
}
},
error: function (xhr, ajaxOptions, thrown) {
if (errorCallback !== null) {
errorCallback(xhr, ajaxOptions, thrown);
}
},
statusCode: statusCodeCallback
});
};
/**
* Get Implicit
*/
AuthHttpClient.prototype.getImplicitToken = function (url, client_id, callback, errorCallback, statusCodeCallback) {
if (location.hash.indexOf(‘access_token‘) !== -1) {
var urlpar = location.hash.substr(1).split("&");
for (var key in urlpar) {
var parm = urlpar[key].split("=");
sessionStorage.setItem(parm[0], parm[1]);
}
}
else {
location.href = url + ‘authorize?response_type=token&client_id=‘ + client_id + "&redirect_uri=" + window.location.href;
}
};
/**
* Get 密码
*/
AuthHttpClient.prototype.getPassWordToken = function (url, username, password, client_id, client_secret) {
$.ajax(url + ‘token‘, {
data: {
‘grant_type‘: ‘password‘,
‘username‘: username,
‘password‘: password,
‘client_id‘: client_id,
‘client_secret‘: client_secret
},
async: false,
type: ‘post‘,
success: function (data, textStatus, jqXHR) {
if (data !== null && data !== ‘‘) {
sessionStorage.setItem("access_token", data.access_token);
sessionStorage.setItem("expires_in", data.expires_in);
}
},
contentType: ‘application/x-www-form-urlencoded;charset=UTF-8‘,
headers: {
Accept: ‘text/html,application/xhtml+xml,application/json,application/xml;q=0.9,*/*;q=0.8‘
}
});
};
/**
* 客户端
*/
AuthHttpClient.prototype.getClientToken = function (url, client_id, client_secret, callback, errorCallback, statusCodeCallback) {
$.ajax(url + ‘token‘, {
data: {
‘grant_type‘: ‘client_credentials‘,
‘client_id‘: client_id,
‘client_secret‘: client_secret
},
type: ‘POST‘,
success: function (data, textStatus, jqXHR) {
if (data !== null && data !== ‘‘) {
sessionStorage.setItem("access_token", data.access_token);
sessionStorage.setItem("expires_in", data.expires_in);
}
if (callback !== null) {
callback(data);
}
},
error: function (xhr, ajaxOptions, thrown) {
if (errorCallback !== null) {
errorCallback(xhr, ajaxOptions, thrown);
}
},
statusCode: statusCodeCallback,
contentType: ‘application/x-www-form-urlencoded; charset=UTF-8‘,
headers: {
Accept: ‘text/html,application/xhtml+xml,application/json,application/xml;q=0.9,*/*;q=0.8‘
}
});
};
/**
* Get Token
*/
AuthHttpClient.prototype.getToken = function (url,grant_type,client_id, client_secret, callback, errorCallback, statusCodeCallback) {
$.ajax(url + ‘token‘, {
data: {
‘grant_type‘: ‘authorization_code‘,
‘client_id‘: client_id,
‘client_secret‘: client_secret,
‘code‘: new AuthHttpClient().request(‘code‘),
‘redirect_uri‘: sessionStorage.getItem(‘registered_redirect_uri‘)
},
beforeSend: function (request) {
request.setRequestHeader("Authorization", ‘Basic ‘ +new AuthHttpClient().base64_Encode(client_id + ‘:‘ + client_secret));
},
async: false,
type: ‘post‘,
success: function (data, textStatus, jqXHR) {
if (data !== null && data !== ‘‘) {
sessionStorage.setItem("access_token", data.access_token);
sessionStorage.setItem("expires_in", data.expires_in);
}
if (callback !== null) {
callback(data);
}
},
error: function (xhr, ajaxOptions, thrown) {
if (errorCallback !== null) {
errorCallback(xhr, ajaxOptions, thrown);
}
},
statusCode: statusCodeCallback,
contentType: ‘application/x-www-form-urlencoded;charset=UTF-8‘,
headers: {
Accept: ‘text/html,application/xhtml+xml,application/json,application/xml;q=0.9,*/*;q=0.8‘
}
});
};
asp.net webapi+swagger+OAuth2.0
标签:charset cat cti ade ref OAuth2 key 文档 帮助
原文地址:https://www.cnblogs.com/xxxin/p/9675724.html