我试图让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身份在我的父域上运行?
答案 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