我在使用 .Net MVC 5 应用程序配置 ADFS 时遇到问题。
我已经在 VS 2015 中将我的项目配置为使用声明,它工作正常,但我有一个问题。
我可以使用 ADFS 登录,我可以检查用户角色等。当我尝试使用时出现问题
[Authorize(Roles="somenonExistingRole")]
尽管我已经通过了身份验证,但当再次进行身份验证时,我会被重定向到 ADFS 页面,并且我会被重定向到发生循环的页面。页面将我发送到 ADFS 门户,ADFS 将我重定向到门户,经过几次尝试后,我从 ADFS 收到错误(对于许多请求)
我必须自己实现类似角色提供程序的东西吗?或者我需要配置一些额外的东西。也许我可以限制尝试次数?当我的角色已准备就绪时,为什么我会被重定向到 ADFS?
代码中实际上没有太多可显示的内容,按照要求:
我正在测试的控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[Authorize]
public ActionResult About()
{
var u = HttpContext.User;
if (u.IsInRole("/"))
{
ViewBag.Message = "User is in role.";
}
else
{
ViewBag.Message = "User is NOT in role.";
}
return View();
}
[Authorize(Roles = "/nonexistingRole")]
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
和配置身份验证部分
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata,
});
}