我正在尝试在asp.net MVC 1.0中实现customRoleProvider。该课程看起来像这样
using System;
using System.Web.Security;
namespace Project.Web.Services
{
public class CustomRoleProvider: RoleProvider
{
public override bool IsUserInRole(string username, string roleName)
{
throw new NotImplementedException();
}
public override string[] GetRolesForUser(string username)
{
throw new NotImplementedException();
}
public override void CreateRole(string roleName)
{
throw new NotImplementedException();...
我已按如下方式设置Web.config文件
<configuration>
<system.web>
<roleManager enabled="true" defaultProvider="CustomRoleProvider">
<providers>
<clear/>
<add name="CustomRoleProvider" type="Project.Web.Services.CustomRoleProvider" />
</providers>
</roleManager>
...
当我这样做时,我从下面的代码中的httpHandler.ProcessRequest(HttpContext.Current);
行的Default.aspx.cs中抛出了一个InvalidOperationException
public partial class _Default : Page
{
public void Page_Load(object sender, System.EventArgs e)
{
// Change the current path so that the Routing handler can correctly interpret
// the request, then restore the original path so that the OutputCache module
// can correctly process the response (if caching is enabled).
string originalPath = Request.Path;
HttpContext.Current.RewritePath(Request.ApplicationPath, false);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
HttpContext.Current.RewritePath(originalPath, false);
}
}
错误描述如下 无法找到“索引”视图或其主页。搜索了以下位置: 〜/浏览/首页/的Index.aspx 〜/浏览/首页/ Index.ascx 〜/查看/共享/的Index.aspx 〜/查看/共享/ Index.ascx
当我从Web.config中删除roleManager时问题消失了,即使我将以下行放入Web.config中,问题也会重新出现
<roleManager enabled="false"></roleManager>
我还需要做些什么吗?
答案 0 :(得分:0)
这可能不是您正在寻找的答案,但您可以删除default.aspx和default.aspx.cs,您的网站仍然可以使用。只有某些Web服务器的某些配置才需要该文件,以便它们可以正确处理应用程序的根URL。
我建议您至少在测试时尝试将文件重命名为其他内容(例如backup.aspx)并查看您的网站是否仍然有效。如果确实如此,那么你很高兴。
不幸的是,我不知道你为什么会遇到这个特殊的错误。
答案 1 :(得分:0)
我找到了问题的解决方案,首先提出的错误有点误导了错误的实际原因。问题是我现在意识到有两个Web.config文件;一个在Web项目下,另一个在Views文件夹中。当我把它放在Web项目Web.config下时,我把代码放在了Web.config的视图下,没有更多的错误。