gpt4 book ai didi

authentication - Owin和Windows身份验证(mvc5)-使用Windows身份验证作为登录的一部分

转载 作者:行者123 更新时间:2023-12-04 16:14:43 24 4
gpt4 key购买 nike

我正在尝试使用部分使用Windows身份验证的MVC5 Web应用程序。

我的意思是,它实际上是基于表单/cookie的身份验证,但是请求用户的Windows主体构成了他们的登录凭据的一部分。

例如,登录页面将显示“您已被标识为 somedomain\kierenj 。请输入密码以登录。”如果他们输入正确的代码,则会设置cookie并登录。

如果Windows身份验证失败,则登录页面仍会出现,但会被禁用。

我已经尝试过像这样的WindowsPrincipalHanlder:https://github.com/JabbR/JabbR/blob/master/JabbR/Middleware/WindowsPrincipalHandler.cs

要点是,如果我启用Windows身份验证并禁用了匿名身份验证,则Owin(或可能是其中的cookie auth部分)将重定向到登录页面-重定向到登录页面-这是一个重定向循环。

注意我使用的是非常简化的Owin设置。指定了UseCookieAuthentication类型并指定了ApplicationCookieLoginPath;然后从我的帐户 Controller 中调用SignIn这样:

        var claims = new[] {
new Claim(ClaimTypes.Name, "Username"),
new Claim(ClaimTypes.Role, "AuthenticatedUser")
};
AuthenticationManager.SignIn(new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie));

(例如,首先检查 WindowsIdentity.GetCurrent())

我真的需要编写自己的Owin Cookie身份验证中间件版本吗?我可以获取源代码以便调试/派生吗?

最佳答案

为了避免重定向循环,请在为“登录”页面提供服务的 Controller 的构造函数中,尝试将当前HttpContext的Response.SuppressFormsAuthenticationRedirect设置为true

关于authentication - Owin和Windows身份验证(mvc5)-使用Windows身份验证作为登录的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20475850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com