我正在尝试为我们的 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
<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 '
+ '<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" />
我会很感激你能给我的任何帮助。
谢谢。