0

我正在尝试为我们的 Web 应用程序实现表单身份验证。所有代码都运行在一个用 delphi 编写的 DLL 上。我在我的 DLL 中创建了一个 aspx 文件来呈现登录表单,并且我已成功设置我的 IIS 以在用户尚未通过身份验证时将其重定向到 aspx 登录页面。

尽管用户已成功重定向,但登录表单并未在浏览器上呈现。这是我的 FormsLogin.aspx 代码:

<%@ Page language="c#" Codebehind="FormsLogin.pas" AutoEventWireup="false"         Inherits="FormsLogin.TFormsLogin" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <title></title>
  </head>

  <body>
     <form runat="server">
     Password&nbsp;
      <ASP:TextBox id="TextBox1" runat="server"/></form>
  </body>
    </html>

这是 FormsLogin.pas 代码:

unit FormsLogin;

interface

uses
  System.Collections, System.ComponentModel,
  System.Data, System.Drawing, System.Web, System.Web.SessionState,
  System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls;

type
  TFormsLogin = class(System.Web.UI.Page)
  {$REGION 'Designer Managed Code'}
  strict private
    procedure InitializeComponent;
  {$ENDREGION}
  strict private
    procedure Page_Load(sender: System.Object; e: System.EventArgs);
  strict protected
    TextBox1: System.Web.UI.WebControls.TextBox;
    procedure OnInit(e: EventArgs); override;
  private
    { Private Declarations }
  public
    { Public Declarations }
  end;

implementation

{$REGION 'Designer Managed Code'}
/// <summary>
/// Required method for Designer support -- do not modify
/// the contents of this method with the code editor.
/// </summary>
procedure TFormsLogin.InitializeComponent;
begin
  Include(Self.Load, Self.Page_Load);
end;
{$ENDREGION}

procedure TFormsLogin.Page_Load(sender: System.Object; e: System.EventArgs);
begin
  // TODO: Put user code to initialize the page here
 { response.Write('<html><head><title>Test</title></head>'
      +  '<body><form runat="server">'
      + 'Username&nbsp;'
      + '<input id="TextBox1" runat="server"/></form>'
      + '</body></html>');                }
end;

procedure TFormsLogin.OnInit(e: EventArgs);
begin
  //
  // Required for Designer support
  //
  InitializeComponent;
  inherited OnInit(e);
end;

end.

如果我在 Page_Load 过程中添加 HTML 代码,它确实会被渲染,但我非常希望避免走这条路。

我在 web.cofig 文件中添加了以下动词:

<add name="FormLogin.aspx_*" path="FormsLogin.aspx" verb="*" type="FormsLogin.TFormsLogin, dll_name" resourceType="Unspecified" requireAccess="Execute" preCondition="integratedMode,runtimeVersionv2.0" />

我会很感激你能给我的任何帮助。

谢谢。

4

0 回答 0