首页 / C# / C#-ASP.NET用户模拟
C#-ASP.NET用户模拟
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-ASP.NET用户模拟,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1694字,纯文字阅读大概需要3分钟。
内容图文
![C#-ASP.NET用户模拟](/upload/InfoBanner/zyjiaocheng/681/084018ae258b4de291d71c131d8ee167.jpg)
我有一个ASP.NET MVC应用程序,可以在提交表单后访问数据库以检索一些数据并更新另一个数据库上的数据.数据库和IIS都位于不同的服务器上,用户将可以远程访问此服务器,但是所有内容都在Intranet内.通过组将对数据库的访问权限授予用户.
这意味着我需要使用用户的凭据(浏览到asp net应用程序的人员)来访问两个数据库,而要使其正常工作我遇到了很多麻烦.这是我一直在尝试的方法:
部署应用程序并远程打开它后,它会打开,但是访问数据库的方法将返回域/服务器名登录失败.
>启用的模拟:“已检测到ASP.NET设置,该设置不适用于集成托管管道模式.”
> validateIntegratedModeConfiguration =“ false”-> DirectoryServicesCOMException(0x80072020):发生操作错误.
>禁用模拟,并尝试添加代码以仅在我使用以下方式访问数据库的代码部分上模拟:
((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();
导致NT AUTHORITY / ANONYMOUS LOGON登录失败
我的连接字符串是
"Data Source=" + SERVER + ";Initial Catalog=" + DB + ";Integrated Security=True;Connection Timeout=30;Trusted_Connection=true"
注意:在Visual Studio上进行调试并在我部署它的服务器上启用了模拟功能的本地服务器上访问该应用程序时,该应用程序可以完美运行.此外,我们使用智能卡登录,我无法向用户询问凭据.由于我们服务器的安全模型,我无法代表用户使用其他ID.
解决方法:
您所做/要求做的事情通常会被皱眉.当您在连接字符串中设置了Integrated Security = True时,该连接的SID /用户访问由应用程序池定义.这使SQL连接池可以非常有效地工作.
当您尝试使用具有通过身份验证或模拟功能的Integrated Security访问SQL Server时,您基本上会失去连接池中的所有值(因为现在必须使用用户凭据来创建每个连接,并且无法在请求之间共享它们).
通常,遇到这种情况时,我会创建一个用户,授予db访问权限,并将该用户与应用程序池一起使用.当用户在网站(Windows或基本身份验证)上进行身份验证时,我使用Active Directory服务或LDAP来验证用户是否可以访问该应用程序.
内容总结
以上是互联网集市为您收集整理的C#-ASP.NET用户模拟全部内容,希望文章能够帮你解决C#-ASP.NET用户模拟所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。