隐藏电子邮件或网站地址,除非经过验证

时间:2011-08-01 11:01:30

标签: asp.net-mvc

我正在使用ASP.Net MVC开发一个工作板网站,并希望阻止任何电子邮件或网站地址对未注册用户可见。

因此,例如,如果雇主发布工作并在说明中包含某些内容,例如“申请发送电子邮件至myemail@email.com”,我希望它显示“申请发送电子邮件至隐藏链接 - 请登录或注册'或相关的文字。当他们登录链接然后可用。

我仍然处于ASP.Net MVC的学习阶段,所以我不确定从哪里开始。我不确定这是否是正确的做法,或者是否有替代方法。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

使用regex search在发布中查找电子邮件地址,并将其替换为未注册用户所需的链接。

<强> [更新]

  public ActionResult ShowPosting()
    {
    var description = descriptionFromDB();

    if(!registeredUser)
    {
    model.Description = logicToReplaceTheEmailAddress(description);
    }
    else
    {
    model.Description= description;
    }

    return View(model);

}

答案 1 :(得分:0)

only777,

通过为电子邮件地址创建DisplayTemplate并运行您的代码,您可能会得到最好的服务。这是我的意思的一个例子。在你的观点内:

<%: Html.DisplayFor( m => m.Email, "ViewIfAuthenticatedTemplate" ) %>

然后在views / shared / DisplayTemplates下,添加一个名为ViewIfAuthenticatedTemplate.ascx的项目并向其添加以下代码:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>

<% if(Request.IsAuthenticated) { %>
    <%: Model %>
<% } else {%>
    <%: Html.ActionLink("hidden link - please login or register", "MyAction", "MyController") %>
<% } %>

不确定语法是否100%正确,但你得到了主旨..

[edit] - 实际上,您可以将此DisplayTemplate用于任何未经过身份验证时必须隐藏的文本。