Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
asp.net用户权限_Asp.net_Asp.net Mvc_Security_Permissions - Fatal编程技术网

asp.net用户权限

asp.net用户权限,asp.net,asp.net-mvc,security,permissions,Asp.net,Asp.net Mvc,Security,Permissions,我对此感到非常困惑,没有任何文本/文件/因此问题为我阐明了这一点 我希望我的asp.net MVC应用程序能够将XML文档保存到服务器上的文件夹中。但我有个例外 Access to the path 'D:\blah\blah\folder\xml_data.xml' is denied. 所以据我所知,我的应用程序是在一个没有写权限的用户帐户下运行的 我想我以前遇到过这个问题,我的解决办法是联系我的网络主机,让他们授予我的网站权限 但是,如果我想创建自己的自定义角色集并具有相应的权限,该怎么

我对此感到非常困惑,没有任何文本/文件/因此问题为我阐明了这一点

我希望我的asp.net MVC应用程序能够将XML文档保存到服务器上的文件夹中。但我有个例外

Access to the path 'D:\blah\blah\folder\xml_data.xml' is denied.
所以据我所知,我的应用程序是在一个没有写权限的用户帐户下运行的

我想我以前遇到过这个问题,我的解决办法是联系我的网络主机,让他们授予我的网站权限

但是,如果我想创建自己的自定义角色集并具有相应的权限,该怎么办?这些是否必须添加到IIS中?我是否需要创建一个列表,然后将其交给web主机?这样的清单是什么样的?据我所知,无法在web.config中配置角色和权限,对吗

设置角色及其权限后,如何设置应用程序运行时所使用的默认角色,以及如何通过编程更改应用程序运行时所使用的角色


另外,我不想使用asp.net成员身份,我想知道如何自己设置此功能。

使用asp.net成员身份。我不在乎你是否喜欢它。使用它。这很容易,很简单,而且安全性也很好。如果你自己动手却不知道自己在做什么,你会把安全搞得一团糟

人们对会员的评价很差,这是一个很好的工具。大多数人只是对此做出了错误的假设

您可以在成员资格/角色API中定义您的角色。这将存储在您的数据库中。如果没有用户可以应用角色,则不能有角色,因此需要某种类型的成员系统

编辑:

这里有两种用户。第一个是在IIS下运行ASP.NET工作进程的用户。这是主机必须定义的用户,并允许访问各种文件夹以访问文件

第二个是asp.net的IIdentity用户,这是asp.net为登录的web用户定义的用户,它与工作进程用户完全分离。IIdentity用户没有固有的操作系统权限或特权,分配给工作进程标识的权限或特权除外

换句话说,基于IIDentity的用户在IIS中以相同的工作进程身份运行

例外情况是,当您在web.config中定义“impersonate=true”时,这允许工作进程以相关用户的身份“登录”到操作系统。换句话说,工作进程将作为web用户凭据运行。这要求web用户在操作系统中也具有凭据

另一个例外是,您可以在web.config中指定要模拟的特定OS用户。但是,同样,必须有一个操作系统用户来模拟。此外,模拟是一项非常昂贵的操作,需要占用大量的系统资源


请参见

谢谢您的建议,但我特别要求了解如何在没有asp.net成员资格的情况下做到这一点。我知道我可以在程序上设定负责人、身份和角色。我需要知道如何创建自定义角色和权限。我必须定义它们并要求主持人设置它们,还是我可以自己设置它们?这就是我感兴趣的全部。谢谢。@FunkyFresh84-主体、标识和角色与进程运行的Windows用户无关(这就是您描述的访问文件的问题)。您不必让主机了解它们,它们完全在您的代码和数据库中定义。你的IPrincipal和IIDentity对象控制着一切。如果您的用户需要访问文件,那么您仍然必须让web进程以Windows授予权限的身份运行。有一个被称为模拟的概念,但这只适用于用户在服务器上拥有帐户的情况。@FunkyFresh84-如果您不完全了解IPrincipal和IIDentity的工作方式(您的问题让我相信您不了解,或者您知道问题的答案),我仍然建议使用成员api。我建议读一下这个@FunkyFresh84——这可能是最好的。另外两个选项是在数据库中存储文件,或者为web用户创建操作系统用户。您的主机可能不喜欢后者,并且根据文件在数据库中存储的大小,可能不可行。请注意,如果攻击者通过某些漏洞访问您的站点,那么他们可以访问工作进程可以访问的所有文件。@FunkyFresh84-是的,一个工作进程访问App_数据可能是总体上最好的解决方案。