Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OWIN的混合认证_C#_Asp.net Mvc 5_Owin - Fatal编程技术网

C# OWIN的混合认证

C# OWIN的混合认证,c#,asp.net-mvc-5,owin,C#,Asp.net Mvc 5,Owin,我有两种方法对用户进行身份验证: 如果他们是内部用户,我们将通过Windows的active directory进行身份验证 如果他们在站点注册,他们将通过表单身份验证进行身份验证 在MVC 3/4中,我能够通过实现自定义成员资格提供程序和自定义角色提供程序来实现这一点 MVC 5中使用OWIN和Identity是否也可以实现这一点?如何实现这一点?本质上,混合模式是一种带有windows身份验证入口点的表单身份验证,一旦用户通过了它,正常的表单身份验证流就会发生 Katana目前没有为Win

我有两种方法对用户进行身份验证:

  • 如果他们是内部用户,我们将通过Windows的active directory进行身份验证
  • 如果他们在站点注册,他们将通过表单身份验证进行身份验证
  • 在MVC 3/4中,我能够通过实现自定义成员资格提供程序和自定义角色提供程序来实现这一点


    MVC 5中使用OWIN和Identity是否也可以实现这一点?如何实现这一点?

    本质上,混合模式是一种带有windows身份验证入口点的表单身份验证,一旦用户通过了它,正常的表单身份验证流就会发生

    Katana目前没有为Windows身份验证提供OWIN中间件,因为服务器中已经提供了此功能

    因此,要使windows身份验证正常工作,我必须依赖提供的主机之一,IIS自主机(System.Net.HttpListener)

    我制作了一个解决方案,使它看起来像一个外部提供者,将windows身份映射为外部登录


    源代码:

    假设我希望两个身份验证表单的登录屏幕相同。可以修改您的解决方案以将它们合并到单个操作中。作为一个相关的问题,
    Identity
    是否可以先为外部用户使用数据库?@Shoe我不明白你的意思!这两种(win+表单)的解决方案都已存在。但如果你的意思是将两者结合到一个控制器动作中?那么是的,这是可以做到的,但出于编码的原因,我更喜欢将它们分开。至于你的最后一个问题,你只需要实现你自己的
    UserManager
    UserStore
    。我理解。首先,在DB中,
    User
    类如何继承
    IdentityUser
    ApplicationUser
    那样呢?@这是一个实现问题,
    IdentityUser
    只是一个基类,具有到DB表的清晰映射。对于DB-first实现,您只需要实现一个
    UserStore
    ,它有一个很长的接口列表,但是您可以从查看
    Microsoft.AspNet.Identity.EntityFramework.dll
    中的EF实现开始。您能帮我解决这个问题吗: