Пользовательская аутентификация пользователя с мастер-страницей в c # - PullRequest
0 голосов
/ 06 мая 2019

Я создал проект в Visual Studio 2017 с использованием MasterPage .

Я добавил в MasterPage метод sLogins () для аутентификации пользователя.

Теперь мне нужно использовать этот метод в новой веб-форме с MasterPage .

У меня естьпробовал это безуспешно, потому что метод sLogins () недоступен из MasterPage :

Mp.sLogins

Недостаточно публичного объявленияметод sLogins () , чтобы вызвать его в новой веб-форме с MasterPage ?

У кого-нибудь есть идеи, почему?

Мой код ниже.

public void sLogins()
{
  string username = Page.User.Identity.Name.ToLower();
  string[] strusername = username.Split('\\');

  if (strusername.Length > 0)
  {

    username = strusername[strusername.Length - 1];

    string sql = @String.Format(" SELECT * FROM ");
    sql += String.Format(" logins ");
    sql += String.Format(" WHERE ");
    sql += String.Format(" UPPER(username) IN (?); ");

    using (OdbcConnection myConnectionString =
        new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQLA"].ConnectionString))
    {
        using (OdbcCommand command =
            new OdbcCommand(sql, myConnectionString))
        {
            try
            {
                if (username != null)
                {
                    command.Parameters.AddWithValue("param1", username.ToString().ToUpper());
                    command.Connection.Open();

                    using (OdbcDataReader reader = command.ExecuteReader())
                    {
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                ....
                            }

                        }
                        else
                        {
                            Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg", "alert('....');window.location='...';", true);
                        }
                    }
                }
                else
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg", "alert('....');window.location='...';", true);
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException("operation failed!", ex);
            }
            finally
            {
                command.Connection.Close();
            }
        }
    }

  }
}

Новая веб-форма с MasterPage

<%@ Page Title="" Language="C#" MasterPageFile="Mp.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ MasterType VirtualPath="Mp.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

</asp:Content>
...