ASP.NET MVC 3——项目属性中没有“启用SSL”的选项。

7
我正在跟随Pluralsight ASP.NET MVC 3 tutorial,第7模块-安全(顺便说一句,这是一个很棒的教程)。在授权部分,在6:24处,它展示了如何将项目属性SSL Enabled设置为true。我的问题是,当我进入项目属性时,我没有那个选项。我只看到Always Start When DebuggingProject FileProject Folder。有人知道我为什么没有SSL Enabled选项,我该如何让它出现,或者我可以通过不同的方式实现相同的结果吗?我正在使用Visual Studio 2010 SP1Rel。
在其他阅读中,我看到了关于在Web.config文件中的authentication标记下设置requireSSL="true"的设置。这是否与在项目属性下设置SSL Enabled=true相同?如果不是,任何人都能简要解释一下区别或指向一个好文章吗?谢谢。
3个回答

8
我刚刚发现,如果在开发环境中使用IIS Express,这个选项是可用的,但如果使用VS开发服务器,则不可用,而我的项目正在使用后者。我通过右键单击“项目资源管理器”窗口中的项目,然后选择“配置项目为IIS”或类似选项来解决了我的问题。现在,在属性中出现了“SSL Enabled”选项。
顺便说一下,这是帮助我解决问题的网页:此处
另外,虽然我找到了主要问题的答案,但我仍然对我的次要问题感兴趣。
【编辑】设置的快捷方式是右键单击“解决方案资源管理器”中的项目名称,然后单击“属性”...在属性窗口中,单击“Web”选项卡,然后在“服务器”下拉框中更改为“IIS Express”。

我不这么认为。我正在使用VS 2010 Express SP1Rel。我不确定什么是VS Ultimate,所以我假设我没有使用它。 - neizan
1
我的IIS Express被禁用了,但是切换到普通的IIS,然后立即切换回Express就解决了问题。 - willem

1

可以通过在表单配置元素的requireSSL属性中设置ASP.NET应用程序配置文件中的RequireSSL属性。

鉴于您正在使用asp.net mvc,您可以将操作标记为安全操作

如下所示:

[RequireHttps]
public ActionResult Login()
{
   return View();
}

谢谢您的回复。该教程还讨论了使用RequireHttps属性,因此我认为这个属性和设置SSL Enabled = true之间存在差异。我需要进一步深入教程,看看它们各自实际上在做什么。不过,我想我已经找到了我的问题的答案,现在我会发布它。 - neizan

1

1
谢谢提供的信息。我正在阅读这些文章,乍一看它们似乎非常有用。我的应用程序是MVC 3,所以我需要实现自定义类来获得AllowAnonymous MVC 4的效果。我真的很喜欢全局AuthorizeAttribute的想法,然后为特定操作使用AllowAnonymous进行装饰。 - neizan
AllowAnon 在 MVC 3 中很容易实现。你可能已经在我的博客上看到过这个 http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx - RickAndMSFT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接