Friday, 25 November 2016

.asp authentication menu dropdown




//login.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ctti.Data;
using System.Web.Security;

namespace CttiDemo
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void uxAuthenticate_Click(object sender, EventArgs e)
        {
            //authenticate the user against the database
            var db = new CTTIEntities1();
            var auth = db.Authentications.SingleOrDefault(a => a.Username == uxUserId.Text
                                                          && a.Password == uxPassword.Text);
            if(auth != null)
            {
                var student = string.Format("{0} {1}", auth.Student.FirstName,
                                                       auth.Student.LastName);
                //Redirect using the FormsAuthentication class
                FormsAuthentication.RedirectFromLoginPage(student, false);
            }
        }
    }
}

-----------------------------------------------------------------



//~/students/web.config

<?xml version="1.0"?>
<configuration>
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
</configuration>

----------------------------------------------------------------------

//~/web.config
//add <authentication> under <system.web>

<system.web>
    <authentication mode="Forms">
      <forms loginUrl="~/Login.aspx" />
    </authentication>
    <compilation debug="true" targetFramework="4.6.1">
      <assemblies>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.6.1" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Optimization" />
      </namespaces>
      <controls>
        <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
        
      </controls>
    </pages>
  </system.web>

----------------------------------------------------------------------------

//site.master.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CttiDemo
{
    public partial class SiteMaster : MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.User.Identity.IsAuthenticated)
            {
                uxWelcome.Text = "Welcome " + Page.User.Identity.Name;
                uxLogin.Text = "Logout";
                uxLogin.NavigateUrl = "~/Default.aspx";
            }
            else
            {
                uxWelcome.Text = string.Empty;
                uxLogin.Text = "LogIn";
                uxLogin.NavigateUrl = "~/Login.aspx";
            }
        }
    }
}

-----------------------------------------------------------------------

//site.master.aspx


<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="CttiDemo.SiteMaster" %>

<!DOCTYPE html>

<html lang="en">
<head runat="server">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><%: Page.Title %> - My ASP.NET Application</title>

    <asp:PlaceHolder runat="server">
        <%: Scripts.Render("~/bundles/modernizr") %>
    </asp:PlaceHolder>

    <webopt:bundlereference runat="server" path="~/Content/css" />
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />

</head>
<body>
    <form runat="server">
        <asp:ScriptManager runat="server">
            <Scripts>
                <%--To learn more about bundling scripts in ScriptManager see http://go.microsoft.com/fwlink/?LinkID=301884 --%>
                <%--Framework Scripts--%>
                <asp:ScriptReference Name="MsAjaxBundle" />
                <asp:ScriptReference Name="jquery" />
                <asp:ScriptReference Name="bootstrap" />
                <asp:ScriptReference Name="respond" />
                <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
                <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
                <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
                <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
                <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
                <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
                <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
                <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
                <asp:ScriptReference Name="WebFormsBundle" />
                <%--Site Scripts--%>
            </Scripts>
        </asp:ScriptManager>

        <div class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" runat="server" href="~/">
                        <img runat="server" src="~/Images/ctti_banner.jpg" style="width:300px" />
                    </a>
                </div>
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li><a runat="server" href="~/">Home</a></li>
                        <li><a runat="server" href="~/About">About</a></li>
                        <li><a runat="server" href="~/Contact">Contact</a></li>
                        <li><a runat="server" href="~/Instructors">Instructors</a></li>
                        <li><a runat="server" href="~/Courses">Courses</a></li>
                        <li><a runat="server" href="~/Admin">Admin</a></li>                        
                        <li class="dropdown">
                            <a runat="server" href="#" data-toggle="dropdown" class="dropdown-toggle">
                                Students<b class="caret"></b>
                            </a>
                            <ul class="dropdown-menu">
                                <li><a runat="server" href="~/Students/Enrollment">Enrollment</a></li>
                                <li><a runat="server" href="~/Students/Payment">Payment</a></li>
                            </ul>
                        </li>
                    </ul>
                </div>
                <div>
                    <asp:Label ID="uxWelcome" runat="server" ForeColor="White"></asp:Label>
                    &nbsp;&nbsp;<asp:HyperLink ID="uxLogin" runat="server"></asp:HyperLink>
                </div>
            </div>
        </div>
        <div class="container body-content">
            <div class="row">
                <div class="col-md-1">
                    &nbsp;
                </div>
                <div class="col-md-10" style="height:300px">
                    <asp:ContentPlaceHolder ID="MainContent" runat="server">
                    </asp:ContentPlaceHolder>             
                </div>
                <div class="col-md-1">
                    &nbsp;            
                </div>
            </div>            
            <hr />
            <footer>
                <p>&copy; <%: DateTime.Now.Year %> - My ASP.NET Application</p>
            </footer>
        </div>

    </form>
</body>
</html>

-----------------------------------------------------------------------
//logout
//site.master.cs

protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.User.Identity.IsAuthenticated)
            {
                uxWelcome.Text = "Welcome " + Page.User.Identity.Name;
                uxLogin.Text = "Logout";              
            }
            else
            {
                uxWelcome.Text = string.Empty;
                uxLogin.Text = "LogIn";
                uxLogin.PostBackUrl = "~/Login.aspx";
            }
        }

        //linked button
        protected void uxLogin_Click(object sender, EventArgs e)
        {
            if (Page.User.Identity.IsAuthenticated)
            {
                //remove the authentication
                uxWelcome.Text = string.Empty;
                uxLogin.Text = "LogIn";
                uxLogin.PostBackUrl = "~/Login.aspx";
                FormsAuthentication.SignOut();
                Session.Clear();
                Session.Abandon();
                Response.Redirect("~/Default.aspx");
            }
        }

No comments:

Post a Comment