我正在使用C#Razor来建立社交网络。有些页面包含合理的数据,我不希望有人去那个网址看到它。甚至没有去检查元素并通过那里打开它。那么有没有办法警告用户“不允许此网页”?
答案 0 :(得分:1)
您必须实现身份验证和授权才能控制谁可以实际访问mvc应用程序中的任何给定路由。我只能建议您先阅读官方网站www.asp.net/mvc/overview/security,了解授权和身份验证。
通过正确的身份验证/授权,服务器将不会发送任何数据,或者您可以重定向到特定的“不允许的页面”
答案 1 :(得分:0)
我同意路易斯的意见,你应该在这里得到这本书,这对我有所帮助。 http://www.apress.com/9781430257523
您正在寻找的字面答案涉及使用您置于控制器操作或控制器本身之上的授权属性。所以一个动作可能看起来像这样
[Authorize]
public ActionResult UserAccount(Guid id){...}
通过使用ASP.Net Identity设置身份验证,您将能够自动将未登录的访问者重定向到其他页面等。
此外,如果您需要确保当前登录的用户不会(例如)其他用户的个人页面(帐户设置?),您可以在服务器端进行简单检查以防止这种情况发生。像这样的东西(伪代码)
if(User.Identity.GetUserId() != account.OwningUserId)
return RedirectToAction("404", "Shared");