Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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
C# asp.net表单身份验证不使用ssl登录页面_C#_Asp.net - Fatal编程技术网

C# asp.net表单身份验证不使用ssl登录页面

C# asp.net表单身份验证不使用ssl登录页面,c#,asp.net,C#,Asp.net,我希望在asp.net网站中使用表单身份验证,但没有特定的登录页。 相反,我想让我的用户通过屏幕右上角的DIV部分登录。此外,我希望这个DIV部分将使用SSL 我的建议是: 1.创建仅包含带有表单标记的div元素的login.aspx页面。 2.在站点的每个页面上(甚至可能在一个母版页中),创建一个包含login.aspx页面的IFrame。 3.如果用户执行登录-在login.aspx页面中显示“Hi用户名”。否则,显示登录凭据文本框 此建议使用特定的login.aspx页面,但它被IFram

我希望在asp.net网站中使用表单身份验证,但没有特定的登录页。 相反,我想让我的用户通过屏幕右上角的DIV部分登录。此外,我希望这个DIV部分将使用SSL

我的建议是: 1.创建仅包含带有表单标记的div元素的login.aspx页面。 2.在站点的每个页面上(甚至可能在一个母版页中),创建一个包含login.aspx页面的IFrame。 3.如果用户执行登录-在login.aspx页面中显示“Hi用户名”。否则,显示登录凭据文本框

此建议使用特定的login.aspx页面,但它被IFrame和母版页隐藏。我认为这个建议很有创意,我想不出它不起作用的原因。在我尝试之前,这是路吗?有人能提出另一个解决方案吗


提前谢谢

这是一个不存在的问题的复杂解决方案

您所需要做的就是使用Login server控件,并编辑模板以适合您想要的任何内容。把这个放在母版页上,把它连接起来。为了增加好处,您可以编写一些代码来检测用户是否登录,如果是,则隐藏登录控件并显示用户名

或者,您可以将登录控件放在封装此功能的用户控件中


另一种选择是编写自己的登录控件来完成此操作(这并不困难)。

谢谢您的回复。但我有两个问题:*我希望只有登录控件使用SSL,而不是整个页面,这是否符合您的解决方案?*在web.config的loginURL属性中,为了与您的解决方案一致,我应该写些什么?@lionhart-如果登录url所在的页面不是ssl,那么将其设置为ssl是不安全的。原因是如果登录表单包含在(即使是在iFrAME中)未被加密,那么你不能信任页面本身,因为攻击者可以通过中间人攻击来破坏父页面并提供错误的登录URL。此外,如果您的ssl仅在iframe或表单操作中,则最终用户无法验证证书,因此最终用户只能看到一个不安全的页面。@Lionhert-阅读此内容了解更多信息@Lionhert-顺便说一句,您在使用https iframe时会遇到问题。你不能和父母说话。因此,在用户登录后,没有一个好的方法告诉父页面重新加载页面,因此父页面需要重新加载cookie,以便“知道”它现在已通过身份验证。您的解释很好(也解释了为什么我一开始就问到它)。因此,据我所知,我们宁愿有一个登录页面(将使用SSL),也不愿在未加密的页面中使用登录控件。如果其他人(不在我的领域)使用一个指向我的登录页面的iFrAMP,根据你的解释,这是一个中间人攻击,对吗?找到答案…这与我的建议相似。。。