问题描述
我正在将OAuth集成到ASP.NET Webforms应用程序中,并且尝试使用WebClient同步发出发布请求以获取access_token。它不会给出错误,但是底部的Response.Redirect不会触发,并且似乎没有任何关于发布请求或响应的记录。我正在页面加载中调用该方法,因为授权码作为查询字符串返回到此页面。我在做傻事吗?任何帮助将不胜感激!
protected void Page_Load(object sender,EventArgs e)
{
String authorisationcode = Request.QueryString["code"];
if (authorisationcode != null)
{
MicrosoftAuthorisation(authorisationcode);
}
}
protected void MicrosoftAuthorisation(String AuthCode)
{
String MicrosoftClientId = HttpContext.Current.Application["MicrosoftClientId"].ToString();
String MicrosoftRedirectUri = HttpContext.Current.Application["MicrosoftRedirectUri"].ToString();
using (var client = new WebClient())
{
var values = new NameValueCollection();
values["client_id"] = MicrosoftClientId;
values["scope"] = "openid";
values["code"] = AuthCode;
values["redirect_uri"] = MicrosoftRedirectUri;
values["grant_type"] = "authorization_code";
var response = client.UploadValues("https://login.microsoftonline.com/consumers/oauth2/v2.0/token",values);
var responseString = Encoding.Default.GetString(response);
Response.Redirect("loginauthorisation.aspx");
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)