Din*_*h M 5 c# asp.net-mvc azure dotnetopenauth azure-active-directory
我正在尝试集成我的Web服务以使用Azure AD进行身份验证.Azure AD的响应每次都有所不同.当我在firefox普通浏览器中打开我的网站时,IsAuthenticated为true.
在私人浏览器中打开,IsAuthenticated是错误的.
我能看到的唯一区别是,IsAuthenticated true来自ClaimsIdentity而IsAuthenticated false来自GenericIdentity.
以下是我的startup.auth代码.
public partial class Startup
{
private static string clientId = ConfigurationManager.AppSettings["ClientId"];
private static string aadInstance = ConfigurationManager.AppSettings["AADInstance"];
private static string tenantId = ConfigurationManager.AppSettings["TenantId"];
private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["PostLogoutRedirectUri"];
private static string authority = aadInstance + tenantId;
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri
});
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我将身份验证请求发送到AzureAD的代码
public void LoginUsingAzure()
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
Run Code Online (Sandbox Code Playgroud)
此问题已得到解决。出现这个问题的原因是依赖问题。在下面的 stackoverflow 链接中找到了答案。
ASP.NET_SessionId + OWIN Cookie 不发送到浏览器
安装 Kentor.OwinCookieSaver -Version 1.1.0 nuget 包解决了我的问题。
归档时间: |
|
查看次数: |
650 次 |
最近记录: |