跨域的ASP.NET身份

时间:2015-07-09 16:41:01

标签: asp.net security asp.net-identity

我试图让ASP.NET身份在父域上工作。通过设置CookiePath(.mydomain),我能够成功配置身份验证cookie,以便从我的父域访问。

虽然我不确定是否有必要,但我也在两个项目的web.config中设置了一个具有相同值的machinekey标签。

问题: 目前,即使cookie与我的父域共享,它仍然似乎没有注册它已经过身份验证,即使在那里有cookie。我有一个merge标记来拒绝匿名用户,我的应用仍然会重定向到登录页面(位于子域名)。

以防这有所不同:我在Visual Studio上运行localhost上的这两个项目,并在IISExpress上配置了域/子域。 (父项目是localhost.com和子域项目,它进行身份验证,是secure.localhost.com。)

我尝试通过检查用户是否在localhost.com(父域)上使用| FileName | Category | Value | Number | New Column | |:--------:|:--------:|:-----:|:------:|------------| | File1 | Time | 123 | 1 | 123 | | File1 | Size | 456 | 1 | 123 | | File1 | Final | 789 | 1 | 123 | | File2 | Time | 312 | 2 | 312 | | File2 | Size | 645 | 2 | 312 | | File2 | Final | 978 | 2 | 312 | | File3 | Time | 741 | 1 | 741 | | File3 | Size | 852 | 1 | 741 | | File3 | Final | 963 | 1 | 741 | | File1 | Time | 369 | 2 | 369 | | File1 | Size | 258 | 2 | 369 | | File1 | Final | 147 | 2 | 369 | | File3 | Time | 741 | 2 | 741 | | File3 | Size | 734 | 2 | 741 | | File3 | Final | 942 | 2 | 741 | | File1 | Time | 997 | 3 | 997 | | File1 | Size | 245 | 3 | 997 | | File1 | Final | 985 | 3 | 997 | | File2 | Time | 645 | 3 | 645 | | File2 | Size | 285 | 3 | 645 | | File2 | Final | 735 | 3 | 645 | | File3 | Time | 198 | 3 | 198 | | File3 | Size | 165 | 3 | 198 | | File3 | Final | 753 | 3 | 198 | 进行身份验证来尝试进行故障排除,但是我的应用程序错误地在该行上显示以下内容:

  

在上下文中找不到owin.Environment项目。

我还需要做些什么才能让ASP.NET身份在我的父域上运行?

1 个答案:

答案 0 :(得分:1)

这是关于“在上下文中找不到Owin.Environment项目”的异常。来自Request.GetOwinContext()。这通常意味着OWIN启动类检测失败。

检查以下内容:在两个项目中,您将在每个项目的根文件夹中找到Startup.cs文件,其中包含以下代码:

[assembly: OwinStartupAttribute(typeof(XXX.XXX.Startup))]
namespace Project.Web.Client
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

确保在启动时执行此代码。更多信息请访问:http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection