webmatrix/razor: 如何保持网站匿名但对画廊维护页面进行 windows 身份验证?

webmatrix/razor: how to keep website anonymous but have windows authentication for gallery maintenance pages?

我正在使用 webmatrix、razor、c#。我为朋友创建了一个网站,它在 godaddy 上。我已经创建了网页来上传或删除画廊的图像,它们在我的笔记本电脑上的 webmatrix 上工作正常,但在 godaddy 上出现 "access denied" 错误,这是可以理解的,因为我是匿名用户。

Godaddy 说它正在进行 windows 身份验证,godaddy gui 向我显示了文件夹和用户帐户及其权限。

谁能告诉我如何使网站的其余部分保持匿名,但要对修改图库的网页做到这一点: 1.某种身份验证进入 2. 他们还向 godaddy 进行身份验证,因此他们有权访问相关文件夹中的 create/delete 文件

我看不出 WebSecurity class 有何帮助。我读过它默认创建自己的用户帐户数据库,所以这可以实现 1,但不是 2。我还读过它可以配置为使用 windows 身份验证而不是它自己的数据库,但是必须禁用此匿名访问。

如果有任何帮助,我将不胜感激,我确实被困住了。对于任何愿意回复的人,请记住我不是网络开发人员,我是服务器管理员!

我不确定您是否试图让最终用户使用 GoDaddy 并通过网站访问他们的画廊。这听起来像是一项艰巨的安全挑战。

一种方法是只允许 Web 应用程序访问服务器上的所有文件和文件夹。然后你可以忘记 Windows 身份验证。让用户使用 WebSecurity 类 和页面进行身份验证。

_PageStart.cshtml 是一个文件,其代码在用户每次打开页面时运行。在那里你可以放置控制谁有权访问的代码,包括匿名 activity。例如,始终允许用户进入帐户文件夹中的帐户页面,因为那是他们登录的地方。所以他们在登录之前仍然是匿名的。代码很简单:

// You're always allowed to go to the login pages
if (  Request.RawUrl.StartsWith( "/Account") )
{
    return;
}

如果此处的代码 returns 不执行任何其他操作,页面将正常打开。