Virendra S from Bangalore, Karnataka Ответов: 2

Скрыть главную страницу некоторое содержимое на страницах содержимого ASP.NET с#


Я создал веб-приложение, в котором
1 - я хочу скрыть некоторое содержимое главной страницы(например, ссылки на другие страницы(меню), кнопки)

2 - я хочу ограничить доступ к некоторым страницам для вошедших пользователей и не вошедших пользователей.

у меня есть 5 страниц,а именно домашняя страница,регистрация,транзакции,view_transactions, панель мониторинга

у меня работает как ограничить доступ к страницам сделок,view_transactions,панель управления для зарегистрированных пользователей.

как добиться этого в c# asp.net-да.


Мой основной код страницы:

 <pre><%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Expense.master.cs" Inherits="Expense_System.Expense" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <link href="App_Themes/Theme1/MasterPageStyle.css" rel="stylesheet" />

    <title> Expense System</title>
    <asp:ContentPlaceHolder ID="head" runat="server">
        
             

    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">

    <div>
      
            <asp:Menu ID="Menu1" runat="server" BackColor="#FFFBD6" DynamicHorizontalOffset="2" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#990000" Orientation="Horizontal" RenderingMode="Table" StaticSubMenuIndent="10px" style="font-weight: 700; color: #FFFFFF; background-color: #99CCFF; font-size: xx-large; text-align: center;" Width="99%" Height="67px">
                <DynamicHoverStyle BackColor="#990000" ForeColor="White" />
                <DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
                <DynamicMenuStyle BackColor="#FFFBD6" />
                <DynamicSelectedStyle BackColor="#FFCC66" />
                <Items>
                    <asp:MenuItem NavigateUrl="~/HomePage.aspx" Text="Home Page" Value="Home Page"></asp:MenuItem>
                    <asp:MenuItem NavigateUrl="~/Register.aspx" Text="Register" Value="Register"></asp:MenuItem>
                    <asp:MenuItem NavigateUrl="~/Loginpage.aspx" Text="Login" Value="Login"></asp:MenuItem>
                </Items>
                <StaticHoverStyle BackColor="#990000" ForeColor="White" />
                <StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
                <StaticSelectedStyle BackColor="#FFCC66" />
            </asp:Menu>
  
    

        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
  
          
  
          
  
        </asp:ContentPlaceHolder>
          

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



<pre>using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;


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

        }


        protected void btnlogin_Click(object sender, EventArgs e)
        {

            String strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;

            SqlConnection con = new SqlConnection(strConnString);

            SqlCommand cmd = new SqlCommand("SELECT * FROM User_details WHERE [Login Id]=@loginid AND [Password]=@password",con );
            cmd.Parameters.Add("@loginid", SqlDbType.VarChar).Value = loginid.Text;
            cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = pwd.Text;

            //cmd.CommandType = CommandType.StoredProcedure;

            //con.Open();

            //cmd.CommandText = "SPchkloginuser";

            //cmd.Parameters.Add("@loginid", SqlDbType.VarChar).Value = loginid.Text;
            //cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = pwd.Text;
            //cmd.Connection = con;


            //SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText,con);

            SqlDataAdapter da = new SqlDataAdapter(cmd);

            DataTable dt = new DataTable();
            da.Fill(dt);
            if(dt.Rows.Count > 0)
            {

                Response.Redirect("Transactions.aspx");
               
            }

            else
            {
                
                Response.Write("<script>alert('Invalid credentials')</script> ");
               
            }
        }
    }
}


Что я уже пробовал:

Я не понимаю логики, я новичок в кодировании и языке тоже

F-ES Sitecore

Это должно быть сделано на главной странице. Это page_load просто есть код типа

if (userNotLoggedOn)
{
targetControl.Видна = ложь;
}

Richard Deeming

НИКОГДА храните пароли в виде обычного текста!

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

И почему вы заново изобретаете колесо? ASP.NET имеет несколько совершенно хороших встроенных систем аутентификации - например, Личность ASP.NET [^]

2 Ответов

Рейтинг:
2

Vincent Maverick Durano

Если вы новичок в этом деле ASP.NET и хотел бы реализовать безопасность доступа к страницам, я бы предложил вам начать смотреть на: Пошаговое руководство: управление пользователями веб-сайта с помощью ролей[^]


Рейтинг:
0

Kornfeld Eliyahu Peter

Если вы не хотите входить во что-то общее, вы можете получить доступ к элементам управления главной страницы с помощью Master.FindControl с вашей страницы контента...