小编Bri*_*ian的帖子

为什么我的MVC3 Intranet站点Windows身份验证在发布时不起作用

我们在MVC3和实体框架中有一个简单的Intranet站点.从visual studio调试运行一切正常.当我将网站发布到我的本地框IIS7.5网络服务器或同一域上的开发框时,我会收到提示输入用户名和密码,它将无法连接到该网站.它只返回401.1错误,并好奇地显示

Logon Method Not yet determined 
Logon User Not yet determined 
Run Code Online (Sandbox Code Playgroud)

我已经验证启用了Windows身份验证并禁用了匿名身份验证.该应用程序正在使用applicationPoolIdentity但我已经尝试使用网络服务没有区别.webconfig包括

<authentication mode="Windows" />
Run Code Online (Sandbox Code Playgroud)

并且我在有和没有授权部分的情况下尝试过它.

<authorization>
  <allow users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)

我在网上找到的唯一另一件事涉及更改注册表项,但这最终将在生产服务器上,所以我不习惯为此进行注册表更改.

使用此代码块在本地运行会返回所有预期信息

<div id="title">
    <h4> Environment.UserName: @Environment.UserName  
    @DateTime.Now.Millisecond.ToString() </h4>
    @foreach (var role in Roles.GetRolesForUser())
    {
        role.ToString(); <br />
    }
</div>
<div id="logindisplay">
    Context.User.Identity.Name <strong>@Context.User.Identity.Name</strong>!<br />
    @Environment.UserDomainName
</div>
Run Code Online (Sandbox Code Playgroud)

它是一个MVC3 Web应用程序.IIS身份验证开关是

Anonymous Authentication     Disabled
ASP.NET Impersonation        Disabled
Forms Authentication         Disabled
Windows Authentication       Enabled
Run Code Online (Sandbox Code Playgroud)

我缺少的任何其他想法或事物?

windows-authentication iis-7.5 asp.net-mvc-3

6
推荐指数
1
解决办法
8948
查看次数

实体框架控制台应用程序连接到错误的数据库

我有一个EF代码第一个Web应用程序,工作正常,并正确连接到数据库服务器.我已经为解决方案添加了一个控制台应用程序,以测试与应用程序一起运行的服务的逻辑.

对于为什么控制台应用程序没有保存数据有一个头脑,所以我把它减少到数据库的简单提取,结果原来的控制台应用程序正在保存记录,但是到了不同于指定的数据库在连接字符串中.

这是来自app.config的连接字符串:

  <add name="DatabaseContext" connectionString="Data Source=xxx.xx.x.xx; Initial Catalog=OKWU_Gateway; User ID=xxxxx; Password=********; Trusted_Connection=False;" providerName="System.Data.SqlClient" />
  <add name="DevelopmentEntities" connectionString="metadata=res://*/EntityModel.csdl|res://*/EntityModel.ssdl|res://*/EntityModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=;Data Source=|DataDirectory|\OKWU_Gateway.mdf" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

DatabaseContext是

控制台应用程序非常简单

    Database.SetInitializer<DatabaseContext>(null);
    static void Main(string[] args)
    {
        using (DatabaseContext db = new DatabaseContext())
        {
            var query = from u in db.Users where u.Id == 1 select u;
            foreach (User u in query)
            {
                Console.WriteLine(u.Id + " " + u.FirstName + " " + u.LastName);
            }
            Console.ReadLine();
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是它不是连接到远程服务器上的数据库,而是连接到dev机器上的sqlexpress并点击该数据库.

UniversityGateway.Data.DatabaseContext
Run Code Online (Sandbox Code Playgroud)

我尝试更改连接字符串以指向| DataDirectory | 到SQL连接字符串,并没有任何区别.连接字符串与web.config中的连接字符串相同,正如我所说,Web应用程序正常工作.

关于我缺少的任何想法或指出我正确的方向来解决这个问题?

c# entity-framework ef-code-first

6
推荐指数
1
解决办法
3350
查看次数